/* -*- c++ -*- */
#ifndef __ExaminableObject_h_
#define __ExaminableObject_h_

#include "Object.h"
#include <btBulletDynamicsCommon.h>

#define MINIMUM_STEP		0.001
#define MAX_SCALE_FACTOR	10.0f
#define MIN_SCALE_FACTOR	0.1f

class ExaminableObject : public btRigidBody {

	public:

		ExaminableObject(btScalar mass, btMotionState *motionState, btCollisionShape *collisionShape, const btVector3 &localInertia=btVector3(0, 0, 0));
		~ExaminableObject(void);
		
		btVector3 get_physic_position(void);
		void set_physic_position(btVector3& pos);

		void set_visible_object(Object* obj);
		Object* get_visible_object(void);

		void set_selected(bool s);

		void set_scale(float s);
		void scale_up(float inc);
		void scale_down(float inc);

		void update(void);

	private:

		bool _selected;
		bool _forceUpdate;
		Object* _visibleObject;
		btVector3 _oldPos;
		float _scaleFactor;	//The scale factor of the object
};



#endif